package cn.jbolt.ai.resource.embedding.service;

import cn.jbolt.ai.resource.embedding.entity.EmbeddingResource;
import cn.jbolt.util.Result;
import org.jetbrains.annotations.NotNull;

public interface EmbeddingResourceService {

    Result getResourceById(Long id);

    Result listByPage(Integer page, Integer pageSize, String keywords);

    /**
     * 获取所有的embedding资源类型，并加上腾讯内置的
     * @return
     */
    Result listAllEnabledTypeWithTencent();

    Result add(EmbeddingResource resource);

    Result update(EmbeddingResource resource);

    Result del(Long id);

    Result toggleEnable(Long id);

    void registerAllResource();

    Result getModelDimension(EmbeddingResource embeddingResource);

    Result listAllEnabledType();

    Result registerResource(@NotNull EmbeddingResource embeddingResource);

    Result getOrCreateModel(String type, String defaultModel, Integer dimension);

    EmbeddingResource getResourceByTypeAndDefaultModel(String type, String defaultModel);
}
